package cn.funeralobjects.minecraft.service;

import cn.funeralobjects.minecraft.model.Player;
import cn.funeralobjects.minecraft.model.Server;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/**
 * @author FuneralObjects
 * Create date: 2020/11/11 7:10 AM
 */
public interface MinecraftServerService {

    /**
     * 获取服务器信息
     *
     * @return 服务器信息
     */
    Mono<Server> getServer();

    /**
     * 获取玩家信息
     *
     * @param uuid uuid
     * @return 玩家信息
     */
    Mono<Player> getPlayer(String uuid);

    /**
     * 获取所有玩家的信息
     *
     * @return 玩家信息
     */
    Flux<Player> getPlayers();

    /**
     * 获取当前玩家数量
     *
     * @return 数量
     */
    Mono<Integer> currentPlayerCount();

    /**
     * 把玩家踢出服务器
     *
     * @param uuid uuid
     * @return 被踢出的玩家信息
     */
    Mono<Player> kick(String uuid);
}
